package ctbu.edu.cn.dp101.aop;

import ctbu.edu.cn.dp101.constant.REnum;
import ctbu.edu.cn.dp101.exception.RException;
import ctbu.edu.cn.dp101.util.RUtil;
import ctbu.edu.cn.dp101.vo.R;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 统一异常处理，使用ControllerAdvice(增强控制器)
 */

@RestControllerAdvice
public class ExceptionHandle {
    @ExceptionHandler(value = Exception.class)
    public R handle(Exception e){
        if(e instanceof RuntimeException){
            RException rException = (RException)e;
            return RUtil.error(rException.getCode(), rException.getMessage());
        }
        return RUtil.error(REnum.UNOWN_ERR);
    }
}
